import axios from "axios";
import Vue from "vue";

axios.defaults.timeout = 10000; //超时处理
// axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; //请求头设置

axios.interceptors.request.use(
  //token验证
  (config) => {
    let token = localStorage.getItem("token");
    config.headers.token = token;

    return config;
  },
  (error) => {
    return new Promise.error(error);
  }
);
axios.interceptors.response.use(
  (response) => {
    if (response.status === 200) {
      return Promise.resolve(response);
    } else {
      // return Promise.reject(response);
      return response;
    }
  },
  (error) => {
    console.log(error);

    try {
      //   if (error.response && error.response.status == 401) {

      //   }
      // return Promise.reject(error);
      return error.response;
    } catch (error) {
      return Promise.reject(error);
    }
  }
);

export function get(url, params, timeout) {
  return new Promise((resolve, reject) => {
    axios
      .get(url, {
        params: params,
        timeout: timeout,
      })
      .then((res) => {
        return resolve(res.data.data);
      })
      .catch((err) => {
        // if (err.response.status == 401) {
        //   //登录过期
        //   Vue.prototype.$notify({
        //     type: "danger",
        //     message: "登录失效",
        //   });
        //   localStorage.clear();
        //   store.commit("logOut");
        //   router.push("/login");
        // }
        // Vue.prototype.$notify({
        //   type: "danger",
        //   message: err.response.data.msg,
        // });
        reject(err);
      });
  });
}
export function post(url, params, timeout) {
  return new Promise((resolve, reject) => {
    axios
      .post(url, params, timeout)
      .then((res) => {
        // console.log(res);
        if (res.data.code != 200) {
          Vue.prototype.$message({
            type: "error",
            message: res.data.msg,
          });
          resolve(res.data);
        }
        return resolve(res.data);
      })
      .catch((err) => {
        Vue.prototype.$message({
          type: "error",
          message: err.response.data.msg,
        });
        reject(err);
      });
  });
}
